最近,笔者发现了有关司马迁生平的新资料,为考定其生年提供了直接的证据。
以前考证司马迁的生年,主要的材料有两条:
一、《自序》云:“(司马谈)卒三岁而迁为太史令。”司马贞《索隐》引《博物志》:“太史令,茂陵显武里大夫司马迁,年二十八,三年六月乙卯除,六百石。”
二、《自序》“五年而当太初元年”句下,张守节《正义》云:“案迁年四十二岁。”
有的学者依据《正义》,认为司马迁生于景帝中元五年(公元前145年),《索隐》引文有误。有的学者根据《索隐》,认为司马迁生于武帝建元六年(公元前135年),《正义》之文有误。
双方考证司马迁生年,虽有十年之差,但其所据资料,实际上同出一源,即《博物志》的有关记载。因此,《博物志》所载年岁是否有误,是考定司马迁生年的关键。由于《索隐》与《正义》存在矛盾,而又没有其它直接证据,无论是对两者加以取舍,还是从另外一些方面作间接推论,都很难从根本上解决问题。
考《玉海》卷四十六载:“《史记正义》:《博物志》云迁年二十八,三年六月乙卯除,六百石。”又《玉海》卷一百二十三载:“《索隐》曰:《博物志》:太史令司马迁年二十八,三年六月乙卯除,六百石。”这两条资料所载司马迁年岁,与今本《史记》中司马贞引《博物志》之文完全一致,这说明《索隐》引文准确无误,同时也证实,张守节推算司马迁生年的根据也是《博物志》。如此看来,《博物志》确实是考定司马迁生年唯一的、也是最为可靠的原始资料。张守节云太初元年“迁年四十二岁”,比司马迁实际年龄多出十岁,肯定有误。这究竟是张氏推算有误,还是后人传写不慎而致误,现已不得而知。
那么,《玉海》所引《史记正义》与《博物志》记载是否可靠呢?
《玉海》二百卷,王应麟撰。王应麟生于南宋宁宗嘉定十六年,卒于元初。现在所能见到的最早的《史记》三家注合刻本是宁宗庆元中黄善夫本。也就是说,早在王应麟出生之前,三家注合刻本就已经出现。但从《玉海》引用《史记正义》的具体情况看,王氏编书时所依据的当是单行本《正义》。据初步统计,《玉海》征引《史记正义》之文不见于标点本《史记》者达50余条。正因为王应麟所用的是《史记正义》单行本,所以能征引更多的《正义》注文。而且,因为他所见的版本较早,文字讹误的可能性也比后来的版本更小。
《玉海》所引自经史子集至百家传记,无不赅备。因《周易》、《尚书》、《毛诗》、《礼记》、《春秋左传》等各有“正义”,而“索隐”之名,仅见于司马贞所著之书,故《玉海》引司马贞之说,径称“索隐”,引张守节之注,则多标曰“史记正义”,以免与其它各书之“正义”相混淆(《玉海》引文称“史记正义”者共有31条,引文中或有出现《史记》书名或篇名者,则通常简称“正义”,于此亦可见其引书之严谨)。《玉海》卷四十六征引《博物志》之文,标明出处为“史记正义”,完全可以排除张冠李戴,误“索隐”为“正义”的可能性。《玉海》卷一百二十三引此条称“《索隐》曰”亦可为佐证。
从《索隐》与《正义》的关系来考察,也可以肯定张守节曾见到并且认同《博物志》的有关记载。司马贞《索隐后叙》提到自己《史记》之学受之于崇文馆学士张嘉会,而张守节注《梁孝王世家》、《匈奴列传》,也一再提到“张先生旧本”、“先生旧本”。司马贞《索隐序》自署“国子博士弘文馆学士河内司马贞”,据《旧唐书·刘子玄传》,司马贞为博士在开元初,而张守节《正义序》称“开元二十四年八月杀青斯竟”,程金造《史记正义与索隐关系证》据此认为“《索隐成书,早于《正义》二十年。”程氏还通过大量的实例分析,指出《正义》对《索隐》多有疏通补正。邵晋涵《南江文抄·史记正义提要》云:“守节能通裴马因之训辞,折司马贞之同异。”这是符合实际情况的。对《正义》与《索隐》之间特殊关系的认定,使我们有理由作出如下判断。其一,张守节肯定能见到《博物志》有关司马迁事迹的记载。他注释《秦本纪》、《赵世家》、《留侯世家》、《司马相如列传》诸篇,就都引用过《博物志》的资料。退一步说,即使他未见《博物志》原文,至少也可以见到司马贞的引文。其二,《正义》与《索隐》原本各自独立成书,《博物志》的记载,是确定司马迁年岁的唯一资料,《正义》加以征引,当在情理之中。否则,太初元年“迁年四十二岁”的按语就显得突兀无据。其三,如果张守节所见资料与《索隐》所引《博物志》有不同,他应加以说明,他对司马迁年龄的推算,就更需交代依据。若是他认为司马贞所引《博物志》有误,则应予以驳正。张守节对《索隐》引文不置一辞,本身即是一种认同。《玉海》所引《史记正义》与《索隐》若合符节,绝非偶然。
总之,《玉海》所引《正义》佚文是可信的。司马迁的生年应该是武帝建元六年而非景帝中元五年。